package com.xiye.system.service.role;

import java.util.List;

import com.xiye.common.entity.Page;
import com.xiye.common.entity.Role;
import com.xiye.common.entity.PageData;

/**
 * @author 西野
 * @version V1.0
 * @title RoleService.java
 * @package com.xiye.system.service.role;
 * @description 角色接口类
 * @date 2018-06-22
 */
public interface RoleService {

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 列出此组下级角色
     * @Param [pd]
     * @Return java.util.List<com.xiye.common.entity.Role>
     */
    List<Role> listAllRolesByPId(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-07-10 11:12:39
     * @Description 列出此组下级角色分页列表
     * @Param [page]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> listAllRolesByPId(Page page);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过id查找
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData findObjectById(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过角色编码查找
     * @Param [pd]
     * @Return com.xiye.common.entity.PageData
     */
    PageData getRoleByRnumber(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 添加
     * @Param [pd]
     * @Return void
     */
    void add(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 保存修改
     * @Param [pd]
     * @Return void
     */
    void edit(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 删除角色
     * @Param [ROLE_ID]
     * @Return void
     */
    void deleteRoleById(String ROLE_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 给当前角色附加菜单权限
     * @Param [role]
     * @Return void
     */
    void updateRoleRights(Role role);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过id查找
     * @Param [ROLE_ID]
     * @Return com.xiye.common.entity.Role
     */
    Role getRoleById(String ROLE_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 给全部子角色加菜单权限
     * @Param [pd]
     * @Return void
     */
    void setAllRights(PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 权限(增删改查)
     * @Param [msg, pd]
     * @Return void
     */
    void saveB4Button(String msg, PageData pd);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 通过角色ID数组获取角色列表
     * @Param [arryROLE_ID]
     * @Return java.util.List<com.xiye.common.entity.Role>
     */
    List<Role> getRoleByArryROLE_ID(String[] arryROLE_ID);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 角色列表(弹窗选择用)
     * @Param [page]
     * @Return java.util.List<com.xiye.common.entity.PageData>
     */
    List<PageData> roleListWindow(Page page);

    /*
     * @Author 西野
     * @Date 2018-06-22 11:06:06
     * @Description 修改角色状态开启或者关闭
     * @Param [pd]
     * @Return void
     */
    void upStatus(PageData pd);

}
